package com.cx.common.utils;

import org.apache.commons.collections.CollectionUtils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 分页工具
 * @Author:cxy
 *
 */
public class PageUtils {
	
	/**
	 * 
	 * @param list
	 * @param page
	 * @param pageSize
	 * @return
	 */
	public static <T> List<T> getPageList(List<T> list, int page, int pageSize){
		if(CollectionUtils.isEmpty(list) || page <= 0 || pageSize <= 0) {
			return Collections.emptyList();
		}
		int totalPage = getTotalPage(list, pageSize);
		if(page > totalPage) {
			return Collections.emptyList();
		}
		int index = (page - 1) * pageSize;
		List<T> pageResult = CollectionsUtils.pageResult(list, index, index + pageSize);
		return pageResult;
	}
	
	/**
	 * 获取list总页数
	 * @param list
	 * @param pageSize
	 * @return
	 */
	public static <T> int getTotalPage(List<T> list, int pageSize) {
		if(CollectionUtils.isEmpty(list) || pageSize <= 0) {
			return 0;
		}
		int size = list.size();
		int totalSize = size % pageSize == 0 ? size / pageSize : size / pageSize + 1;
		return totalSize;
	}
	
	public static void main(String[] args) {
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		list.add(5);
		list.add(6);
		list.add(7);
		list.add(8);
		list.add(9);
		list.add(10);
		list.add(11);
		list.add(12);
		list.add(13);
		list.add(14);
		list.add(15);
		list.add(16);
		list.add(17);
		list.add(18);
		list.add(19);
		list.add(20);
		list.add(21);
		list.add(22);
		list.add(23);
		list.add(24);
		List<Integer> pageList = getPageList(list, 6, 5);
		System.err.println(JsonUtils.object2String(pageList));
	}
}
